using Sheep_Breeding.ErrorCode;
using Sheep_Breeding.Write.Api.DTOs;

namespace Sheep_Breeding.Write.Api.OperationServices.IServices
{
    /// <summary>
    /// 羊只采购服务接口
    /// </summary>
    public interface ISheepPurchaseServices
    {
        /// <summary>
        /// 添加羊只采购信息
        /// </summary>
        /// <param name="dto">添加羊只采购信息</param>
        /// <returns>操作结果</returns>
        Task<ApiResult> AddSheepPurchase(AddSheepPurchaseDto dto);

        /// <summary>
        /// 更新羊只采购信息
        /// </summary>
        /// <param name="dto">更新羊只采购信息</param>
        /// <returns>操作结果</returns>
        Task<ApiResult> UpdateSheepPurchase(UpdateSheepPurchaseDto dto);

        /// <summary>
        /// 删除羊只采购信息
        /// </summary>
        /// <param name="dto">删除羊只采购信息</param>
        /// <returns>操作结果</returns>
        Task<ApiResult> DeleteSheepPurchase(DeleteSheepPurchaseDto dto);

        /// <summary>
        /// 查询羊只采购信息
        /// </summary>
        /// <param name="dto">查询条件</param>
        /// <returns>查询结果</returns>
        Task<ApiResult<List<SheepPurchaseResultDto>>> SearchSheepPurchase(SearchSheepPurchaseDto dto);

        /// <summary>
        /// 根据ID获取羊只采购详情
        /// </summary>
        /// <param name="id">羊只采购ID</param>
        /// <returns>羊只采购详情</returns>
        Task<ApiResult<SheepPurchaseResultDto>> GetSheepPurchaseById(long id);
    }
} 